HTML (HyperText Markup Language) document encoding has proven to be flexible and useful on the Internet for viewing documents. The World Wide Web (“Web”) has grown popular in large part to HTML's graphical representations of data and its links to other data.
HTML is a specific implementation of a SGML (Standard Generalized Markup Language). SGML is a generic text formatting language that is widely used for large databases and multiple media projects. It is particularly well suited for works that involve intensive cross-referencing and indexing. HTML is an application of SGML. It uses tags to mark elements, such as text and graphics, in a document to indicate how Web browsers should display these elements to the user and should respond to user actions. Such an action may be an activation of a link by means of a key press or mouse click.
XML (eXtensible Markup Language) is a specific implementation of a condensed form of SGML. XML lets Web developers and designers create customized tags that offer greater flexibility in organizing and presenting information than is possible with the HTML document encoding system.
In HTML, both the tag semantics and the tag set are fixed. XML specifies neither semantics nor a tag set. In fact, XML is really a meta-language for describing markup languages. In other words, XML provides a facility to define tags and their structural relationships. This facility may be called a “grammar.” Since there is no predefined tag set, there is not any preconceived semantics or grammar. The semantics and grammar of an XML document is defined by the applications that process them.
As the Internet is becoming a serious business tool, HTML's limitations are becoming more apparent. For example, HTML can be used to exchange presentation data (such as images and text), but it is not capable of exchanging data messages (such as those containing commands, instructions, requests, or complex business documents) conveniently. In message-oriented programming, a message is the way that one program entity requests an action from another entity. Typically, a message specifies the name of the entity or service to which the request is made, the action (or method) to be performed, and any parameter or value that needs to be specified for this request. Therefore, a “message exchange” is a communication in which an entity sends a message to another entity to request that the other entity take some action and, if appropriate, respond. An entity may be a person, program object, an application, an operating system, a computer, a computer system, a network, and so forth.
Message exchanges between entities are important to a distributed computing environment where computers actively distribute work and data across a network. Such distributed computing environments are common for “private” networks, such as LANs and WANs. These private networks support message exchange protocols (MEP). For example, RPC (Remote Procedure Call) is a common MEP.
Typically, these private networks support message exchanges between entities using the same platform. For example, a group of computers using a variety of the Microsoft® Windows® operating systems on a network may easily exchange messages using their native MEP. Likewise, a group of computers each using the same “unix”-based network may easily exchange message using their native MEP.
However, exchanging messages across heterogeneous platforms is difficult to implement. If possible, such message exchanges typically require translation and conversion between MEPs. Moreover, exchanging messages over a “public” network is more difficult to implement. A “public” network (like the Internet) includes multiple platforms that may or may not allow the exchange of messages using a specific MEP. Additionally, it may be difficult or impossible to predict MEP in advance.
While HTML is valuable for transmitting presentation data (such as images and text) over the Internet for human viewing, it does not have the capability to conveniently exchange data messages between entities (e.g., program modules) over the Internet. Using HTML to transmitting a document from one entity to another is not “message exchange” as understood by those skilled in the art of message-oriented programming. Instead, one entity (such as a Web server) is simply delivering data to be displayed to another entity (such as a Web browser) and this other entity is not acting upon such data. The Web server cannot request that the browser perform some task based upon the delivered data. The Web server has no control over what the browser does with the delivered data.
Sometimes the delivered data includes a small program (“applet”) using a programming language such as Java. This is not “message exchange” as understood by those skilled in the art of message-oriented programming. The Web server simply delivers the applet, but it cannot cause it be run on the browser. Note that delivery of the applet is not a request for the browser to perform a specific function.
HTML is a format used for exchanging presentation data meant for human consumption. The web-server sends HTML to the web-browser that renders it for human consumption. In other words, HTML tags are the commands and hints to the web-browser on how to render the presentation data.
HTML and similar protocols are not primarily targeted as a mechanism for program-to-program communication that may not involve any human interaction at all. Communicating programs/entities typically agree on the commands and the associated data. A Java applet involves code download and local execution. It is not designed for program-to-program communication.
XML provides flexibility extensibility and specificity that HTML and other protocols do not. Thus, it is possible to use XML to exchange data messages over a public or private network. However, no defined protocol for exchanging messages using XML presently exists.